home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / games_a / dn3dgore.zip / GAME.CON next >
Text File  |  1996-02-15  |  71KB  |  2,500 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D Script Code.
  5. Todd Replogle & Dan Gibbons (gory bits)
  6.  
  7. The gory stuff is what I came up with after playing about with this for a
  8. bit - thanks to Iggy and the blokes at Apogee for making a great game!
  9.  
  10. mail me at:
  11.  
  12. 100344.3212@compuserve.com
  13. mendou@digibank.demon.co.uk
  14.  
  15. Or join my UK Ultimate Doom ladder in the Cserve action games forum!
  16. (go ACTION) and mail Dan Gibbons (100344,3212) in Section 11 (Multiplayer
  17. Gaming)
  18.  
  19. Have fun!
  20.  
  21. -DanG
  22. --------------------------------------------------------------------------------
  23. */
  24.  
  25. include defs.con
  26. include user.con
  27.  
  28. state rats
  29.     ifrnd 128 spawn RAT
  30.     ifrnd 128 spawn RAT
  31.     ifrnd 128 spawn RAT
  32.     ifrnd 128 spawn RAT
  33.     ifrnd 128 spawn RAT
  34.     ifrnd 128 spawn RAT
  35.     ifrnd 128 spawn RAT
  36.     ifrnd 128 spawn RAT
  37. ends
  38.  
  39. move RESPAWN_ACTOR_FLAG
  40.  
  41. action RUBCANDENT 1 1 1 1 1
  42. action RUBCAN
  43.  
  44. actor RUBBERCAN WEAK
  45.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  46.     else ifhitweapon
  47.     {
  48.         ifwasweapon THROWFLAME { state rats ifrnd 48 spawn BURNING debris SCRAP3 4 /* spawn EXPLOSION2 */ killit }
  49.         else ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 /* spawn EXPLOSION2 */ killit }
  50.         else action RUBCANDENT
  51.     }
  52. enda
  53.  
  54.  
  55. action EXPBARRELFRAME         0   2   1   1   15
  56. actor EXPLODINGBARREL 26
  57.     fall
  58.     ifaction EXPBARRELFRAME
  59.     {
  60.         ifactioncount 2
  61.         {
  62.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  63.             spawn EXPLOSION2
  64.             debris SCRAP2 2
  65.             sound PIPEBOMB_EXPLODE
  66.             killit
  67.         }
  68.         break
  69.     }
  70.     ifsquished
  71.     {
  72.         debris SCRAP1 5
  73.         killit
  74.         break
  75.     }
  76.     ifhitweapon
  77.         action EXPBARRELFRAME
  78. enda
  79.  
  80. action BURNING_FLAME    0   12   1   1   2
  81. move BURNING_VELS 
  82.  
  83. state burningstate
  84.  
  85.     ifgapzl 16 break
  86.     ifpdistg 10240 break
  87. //    ifpdistl 8192 soundonce FLESH_BURNING
  88.  
  89.     ifcount 128
  90.     {
  91.         ifspawnedby TIRE
  92.         {
  93.             ifactioncount 512
  94.             {
  95.                 sizeto 16 16
  96.                 killit
  97.             }
  98.             ifrnd 16 sizeto 64 48
  99.         }
  100.         else
  101.         {
  102.             sizeto 8 8 sizeto 8 8
  103.             ifactioncount 192 killit
  104.         }
  105.     }
  106.     else
  107.     {
  108.         ifmove 0 move BURNING_VELS
  109.  
  110.         ifspawnedby BOX
  111.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  112.         else ifspawnedby TREE1 sizeto 96 96
  113.         else ifspawnedby TREE2 sizeto 96 96
  114.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  115.         else sizeto 52 52
  116.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  117.     }
  118.  
  119. ends
  120.  
  121. actor BURNING WEAK BURNING_FLAME
  122.     state burningstate
  123. enda
  124.  
  125. actor BURNING2 WEAK BURNING_FLAME
  126.     state burningstate
  127. enda
  128.  
  129. action TOILETWATERFRAMES 0 4 1 1 1
  130. actor TOILETWATER 0 TOILETWATERFRAMES
  131.     ifpdistl 8192
  132.     {
  133.         ifpdistl 6144 soundonce WATER_GURGLE
  134.         ifspawnedby TOILET
  135.             sizeto 34 34
  136.         else
  137.         {
  138.             ifspawnedby WATERFOUNTAINBROKE
  139.                 sizeto 6 15
  140.             else sizeto 24 32
  141.         }
  142.         ifp pdead break
  143.         else ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32 ifphealthl MAXPLAYERHEALTH
  144.             ifhitspace ifcansee
  145.         {
  146.             addphealth 1
  147.             globalsound DUKE_DRINKING
  148.             resetactioncount
  149.         }
  150.     }
  151. enda
  152.  
  153. action WOODENHORSEFRAME  0   1   4
  154. action WOODENFALLFRAME  122  1   5
  155.  
  156. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  157. actor WOODENHORSE WEAK WOODENHORSEFRAME
  158.     fall
  159.     ifhitweapon
  160.     {
  161.         ifdead
  162.         {
  163.             debris SCRAP1 4
  164.             debris SCRAP2 3
  165.             killit
  166.         }
  167.         else action WOODENFALLFRAME
  168.     }
  169. enda
  170.  
  171. state steamcode
  172.     ifpdistl 5144 soundonce STEAM_HISSING
  173.  
  174.     ifcount 26        // Turn it on
  175.     {
  176.         resetcount
  177.         ifpdistl 844
  178.         {
  179.             addphealth -1
  180.             palfrom 16 16
  181.         }
  182.     }
  183.     else
  184.     {
  185.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  186.         sizeto 24 24
  187.     }
  188. ends
  189.  
  190. actor STEAM
  191.     state steamcode
  192. enda
  193.  
  194. actor CEILINGSTEAM
  195.     state steamcode
  196. enda
  197.  
  198. actor WATERBUBBLEMAKER 0 0 random_angle
  199.     ifpdistl 2048 ifrnd 24 spawn WATERBUBBLE
  200. enda
  201.  
  202. action BUBBLE
  203. action CRACKEDBUBBLE    1
  204. move BUBMOVE           -10 -36
  205. move BUBMOVEFAST           -10 -52
  206.  
  207. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth random_angle
  208.  
  209.     ifaction CRACKEDBUBBLE
  210.     {
  211.         ifinwater ifrnd 192 killit
  212.         ifactioncount 7 killit
  213.     }
  214.     else
  215.     {
  216.         ifcount 4
  217.         {
  218.             ifrnd 192 move BUBMOVE getv geth random_angle
  219.             else move BUBMOVEFAST getv geth random_angle
  220.             resetcount
  221.         }
  222.  
  223.         ifonwater
  224.         {
  225.             iffloordistl 8 action CRACKEDBUBBLE
  226.         }
  227.         else ifactioncount 40 action CRACKEDBUBBLE
  228.     }
  229. enda
  230.  
  231.  
  232. move SMOKEVEL 8 -16
  233. move ENGINE_SMOKE 64 -64
  234. move SMOKESHOOTOUT -192
  235. action SMOKEFRAMES 0 4 1 1 10
  236. actor SMALLSMOKE 0 SMOKEFRAMES
  237.     ifmove 0
  238.     {
  239.         ifspawnedby RECON
  240.             move SMOKESHOOTOUT geth
  241.         else ifspawnedby SECTOREFFECTOR
  242.             move ENGINE_SMOKE geth getv
  243.         else move SMOKEVEL geth getv face_player
  244.  
  245.     }
  246.     ifactioncount 4 killit
  247. enda
  248.  
  249. action BARREL_DENTING  2 2 1 1 6
  250. action BARREL_DENTED   1
  251. action BARREL_DENTED2  2
  252.  
  253. move SPAWNED_BLOOD
  254.  
  255. actor NUKEBARRELDENTED WEAK
  256.     cactor NUKEBARREL
  257.     action BARREL_DENTED
  258. enda
  259.  
  260. actor NUKEBARRELLEAKED WEAK
  261.     cactor NUKEBARREL
  262.     action BARREL_DENTED2
  263. enda
  264.  
  265. actor NUKEBARREL MEDIUMSTRENGTH
  266.     ifsquished
  267.     {
  268.         debris SCRAP1 32
  269.         spawn BLOODPOOL
  270.         spawn OOZ
  271.         killit
  272.     }
  273.     fall
  274.     ifaction BARREL_DENTING
  275.     {
  276.         ifactioncount 2
  277.         {
  278.             debris SCRAP1 10
  279.             ifrnd 2 spawn BLOODPOOL
  280.             killit
  281.         }
  282.     }
  283.     else ifhitweapon
  284.     {
  285.         ifdead
  286.         {
  287.             sound VENT_BUST
  288.  
  289.             ifrnd 128
  290.                 spawn BLOODPOOL
  291.             action BARREL_DENTING
  292.         }
  293.         else
  294.         {
  295.             ifaction 0
  296.                 action BARREL_DENTED
  297.             else ifaction BARREL_DENTED
  298.             {
  299.                 action BARREL_DENTED2
  300.                 spawn BLOODPOOL
  301.             }
  302.             else ifaction BARREL_DENTED2
  303.                 action BARREL_DENTING
  304.         }
  305.     }
  306. enda
  307.  
  308. actor FIREBARREL
  309.     fall
  310.     ifcount 32
  311.     {
  312.         resetcount
  313.         ifpdistl 1480 ifp phigher
  314.         {
  315.             addphealth -1
  316.             palfrom 16 16
  317.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  318.         }
  319.     }
  320.     ifhitweapon
  321.     {
  322.         sound VENT_BUST
  323.         debris SCRAP1 10
  324.         ifrnd 128 spawn BURNING
  325.         else spawn BURNING2
  326.         killit
  327.     }
  328. enda
  329.  
  330. action SHRINKERFRAMES 0 4 1 1 10
  331. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  332.     ifactioncount 4 killit
  333. enda
  334.  
  335. action EXPLOSION_FRAMES 0 20 1 1  4
  336. actor EXPLOSION2 1 EXPLOSION_FRAMES
  337. //    ifspawnedby FIREEXT spritepal 1
  338.     ifactioncount 20 killit
  339. enda
  340.  
  341. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  342.     ifactioncount 20 killit
  343. enda
  344.  
  345. action FFLAME_FR 0 16 1 1 1
  346. action FFLAME 0 1 1 1 1
  347.  
  348. actor FLOORFLAME 0 FFLAME_FR
  349.         ifaction FFLAME_FR
  350.         {
  351.                 shadeto -127
  352.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  353.                 ifactioncount 16
  354.                     action FFLAME
  355.         }
  356.         ifaction FFLAME ifrnd 4
  357.         {
  358.              action FFLAME_FR
  359.              sound CAT_FIRE
  360.              resetactioncount
  361.         }
  362.  
  363. enda
  364.  
  365.  
  366.  
  367. action ASATNSPIN   0 5 1 1 4
  368. action ASATSHOOTING -10 3 5 1 40
  369. action ASATWAIT 0 1 5 1 1
  370. move TURRVEL
  371.  
  372. actor ROTATEGUN ROTTURRETSTRENGTH ASATWAIT TURRVEL face_player
  373.  
  374.     ifaction ASATNSPIN
  375.         { ifactioncount 32 { action ASATWAIT move TURRVEL face_player } }
  376.     else ifaction ASATSHOOTING
  377.     {
  378.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  379.         ifcount 32 resetcount
  380.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  381.         else ifcount 4 { ifcount 5 { } else { sound PRED_ATTACK shoot FIRELASER } }
  382.     }
  383.     else ifaction ASATWAIT
  384.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL face_player } }
  385.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  386.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  387.  
  388. enda
  389.  
  390. action RIP_F 0 8 1 1 1
  391. actor FORCERIPPLE 0 RIP_F
  392.     ifactioncount 8 killit
  393.     ifrnd 16 sound SHORT_CIRCUIT
  394. enda
  395.  
  396. action TRANSFOWARD 0  6  1  1  2
  397. action TRANSBACK   5  6  1 -1  2
  398. actor TRANSPORTERSTAR 0 TRANSFOWARD
  399.     ifaction TRANSFOWARD
  400.     {
  401.         ifactioncount 6
  402.             action TRANSBACK
  403.     }
  404.     else
  405.         ifactioncount 6 killit
  406. enda
  407.  
  408. action BEAMFOWARD  0  4  1  1  9
  409. actor TRANSPORTERBEAM 0 BEAMFOWARD
  410.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  411.     ifactioncount 4 killit
  412. enda
  413.  
  414. state getcode
  415.     globalsound DUKE_GET
  416.     palfrom 16 0 32
  417.     ifrespawn
  418.     {
  419.         move RESPAWN_ACTOR_FLAG
  420.         cstat 32768
  421.     }
  422.     else killit
  423. ends
  424.  
  425. state randgetweapsnds
  426.     ifrnd 32 globalsound DUKE_GETWEAPON1
  427.     else ifrnd 32 globalsound DUKE_GETWEAPON2
  428.     else ifrnd 32 globalsound DUKE_GETWEAPON3
  429.     else ifrnd 32 globalsound DUKE_GETWEAPON4
  430.     else globalsound DUKE_GET
  431. ends
  432.  
  433. state getweaponcode
  434.  
  435.     state randgetweapsnds
  436.  
  437.     palfrom 32 0 32
  438.     ifrespawn
  439.     {
  440.         move RESPAWN_ACTOR_FLAG
  441.         cstat 32768
  442.     }
  443.     else killit
  444. ends
  445.  
  446.  
  447. state respawnit
  448.     ifcount RESPAWNTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  449. ends
  450.  
  451. state quikget
  452.     globalsound DUKE_GET
  453.     palfrom 16 0 32 killit
  454. ends
  455.  
  456. state quikweaponget
  457.     state randgetweapsnds
  458.     palfrom 32 0 32 killit
  459. ends
  460.  
  461. actor STEROIDS
  462.     fall
  463.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  464.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE
  465.     ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  466.     {
  467.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  468.     }
  469. enda
  470.  
  471. actor HEATSENSOR
  472.     fall
  473.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  474.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  475.     {
  476.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  477.     }
  478. enda
  479.  
  480. actor BOOTS
  481.     fall
  482.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  483.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  484.         ifcanseetarget
  485.     {
  486.         addinventory GET_BOOTS BOOT_AMOUNT quote 6 state getcode
  487.     }
  488. enda
  489.  
  490. actor SHIELD
  491.     fall
  492.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  493.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  494.         ifcanseetarget
  495.     {
  496.         ifspawnedby PIGCOP
  497.         {
  498.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  499.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  500.             quote 104
  501.             sound KICK_HIT palfrom 24 0 32 killit
  502.         }
  503.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  504.         ifspawnedby SHIELD state getcode
  505.         else state quikget
  506.     }
  507. enda
  508.  
  509. actor BODYSUIT
  510.     fall
  511.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  512.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BSUIT BODYSUIT_AMOUNT ifcanseetarget
  513.     {
  514.         addinventory GET_BSUIT BODYSUIT_AMOUNT quote 42 state getcode
  515.     }
  516. enda
  517.  
  518. actor AIRTANK
  519.     fall
  520.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  521.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_SCUBA SCUBA_AMOUNT ifcanseetarget
  522.     {
  523.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  524.     }
  525. enda
  526.  
  527. action HOLODUKE_FRAMES 0 4 1 1 8
  528. actor HOLODUKE 0 HOLODUKE_FRAMES
  529.     fall
  530.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  531.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT ifcanseetarget
  532.     {
  533.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  534.     }
  535. enda
  536.  
  537. actor JETPACK
  538.     fall
  539.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  540.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  541.     {
  542.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  543.     }
  544. enda
  545.  
  546. actor ACCESSCARD
  547.     fall
  548.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  549.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  550.     {
  551.         ifpinventory GET_ACCESS 0 break
  552.         addinventory GET_ACCESS 1
  553.         quote 43
  554.         state getcode
  555.     }
  556. enda
  557.  
  558. // test boss_recod
  559.  
  560.  
  561. actor AMMO
  562.     fall
  563.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  564.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  565.     {
  566.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  567.         ifspawnedby AMMO state getcode
  568.         else state quikget
  569.     }
  570. enda
  571.  
  572. actor SHOTGUNAMMO
  573.     fall
  574.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  575.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  576.     {
  577.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  578.         ifspawnedby SHOTGUNAMMO state getcode
  579.         else state quikget
  580.     }
  581. enda
  582.  
  583. actor AMMOLOTS
  584.     fall
  585.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  586.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  587.     {
  588.         addammo PISTOL_WEAPON 48 quote 65
  589.         ifspawnedby AMMOLOTS state getcode
  590.         else state quikget
  591.     }
  592. enda
  593.  
  594. actor FUELCAN
  595.     fall
  596.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  597.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  598.     {
  599.         addammo FLAMETHROWER_WEAPON FUELAMMOAMOUNT quote 66
  600.         ifspawnedby FUELCAN state getcode
  601.         else state quikget
  602.     }
  603. enda
  604.  
  605. actor CRYSTALAMMO
  606.     fall
  607.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  608.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  609.     {
  610.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  611.         ifspawnedby CRYSTALAMMO state getcode
  612.         else state quikget
  613.     }
  614. enda
  615.  
  616. actor BATTERYAMMO
  617.     fall
  618.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  619.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  620.     {
  621.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  622.         ifspawnedby BATTERYAMMO state getcode
  623.         else state quikget
  624.     }
  625. enda
  626.  
  627. actor RPGAMMO
  628.     fall
  629.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  630.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  631.     {
  632.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  633.         ifspawnedby RPGAMMO state getcode
  634.         else state quikget
  635.     }
  636. enda
  637.  
  638. actor HBOMBAMMO
  639.     fall
  640.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  641.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  642.     {
  643.         addweapon HANDBOMB_WEAPON 0
  644.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  645.  
  646.         quote 55
  647.         ifspawnedby HBOMBAMMO state getweaponcode
  648.         else state quikweaponget
  649.     }
  650. enda
  651.  
  652. actor RPGSPRITE
  653.     fall
  654.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  655.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  656.     {
  657.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  658.         ifspawnedby RPGSPRITE state getweaponcode
  659.         else state quikweaponget
  660.     }
  661. enda
  662.  
  663. actor SHOTGUNSPRITE
  664.     fall
  665.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  666.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  667.     {
  668.         ifspawnedby PIGCOP
  669.         {
  670.             addweapon SHOTGUN_WEAPON 0
  671.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  672.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  673.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  674.             else addammo SHOTGUN_WEAPON 1
  675.         }
  676.         else addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  677.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  678.         else state quikweaponget
  679.     }
  680. enda
  681.  
  682.  
  683.  
  684. actor SIXPAK
  685.     fall
  686.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  687.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  688.     {
  689.         addphealth 30 quote 62
  690.         ifspawnedby SIXPAK state getcode
  691.         else state quikget
  692.     }
  693. enda
  694.  
  695. actor COLA
  696.     fall
  697.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  698.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  699.     {
  700.         addphealth 10 quote 61
  701.         ifspawnedby COLA state getcode
  702.         else state quikget
  703.     }
  704. enda
  705.  
  706. actor ATOMICHEALTH
  707.     fall
  708.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  709.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  710.         ifphealthl MAXPLAYERATOMICHEALTH
  711.     {
  712.         addphealth 50 quote 19
  713.         ifspawnedby ATOMICHEALTH state getcode
  714.         else state quikget
  715.     }
  716. enda
  717.  
  718.  
  719.  
  720.  
  721. actor FIRSTAID
  722.     fall
  723.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  724.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6
  725.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT
  726.     ifcanseetarget
  727.     {
  728.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3 state getcode
  729.     }
  730. enda
  731.  
  732.  
  733. actor FIRSTGUNSPRITE
  734.     fall
  735.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  736.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  737.     {
  738.         addweapon PISTOL_WEAPON 48
  739.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  740.         else state quikweaponget
  741.     }
  742. enda
  743.  
  744. actor TRIPBOMBSPRITE
  745.     fall
  746.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  747.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  748.     {
  749.         addweapon TRIPBOMB_WEAPON 1
  750.         quote 58
  751.         state getweaponcode
  752.     }
  753. enda
  754.  
  755. actor CHAINGUNSPRITE
  756.     fall
  757.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  758.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  759.     {
  760.         addweapon CHAINGUN_WEAPON 500 quote 54
  761.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  762.         else state quikweaponget
  763.     }
  764. enda
  765.  
  766.  
  767.  
  768. actor SHRINKERSPRITE
  769.     fall
  770.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  771.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  772.     {
  773.         addweapon SHRINKER_WEAPON 10 quote 60
  774.         ifspawnedby SHRINKERSPRITE state getweaponcode
  775.         else state quikweaponget
  776.     }
  777. enda
  778.  
  779. actor FLAMETHROWERSPRITE
  780.     fall
  781.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  782.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  783.     {
  784.         addweapon FLAMETHROWER_WEAPON 48 quote 59
  785.         ifspawnedby FLAMETHROWERSPRITE state getweaponcode
  786.         else state quikweaponget
  787.     }
  788. enda
  789.  
  790. state firestate
  791.  
  792.     ifgapzl 16 break
  793.     ifpdistg 10240 break
  794.     ifinwater killit
  795.  
  796.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  797.  
  798.     ifactor FIRE ifspawnedby FIRE break
  799.     else ifactor FIRE2 ifspawnedby FIRE2 break
  800.  
  801.     iffloordistl 128
  802.     {
  803.         ifcount 32 sizeto 8 8
  804.         ifcount 64 killit
  805.     }
  806.     else killit
  807.  
  808. ends
  809.  
  810. action FIRE_FRAMES     -1 14 1 1 1
  811. move FIREVELS
  812. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  813. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  814.  
  815. actor FECES
  816.     ifcount 24
  817.     {
  818.         ifpdistl RETRIEVEDISTANCE
  819.         {
  820.             spawn BLOODPOOL   // Will be brown
  821.             killit
  822.         }
  823.     }
  824.     else sizeto 32 32
  825. enda
  826.  
  827. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  828. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  829. state drop_fuel ifrnd SPAWNAMMOODDS spawn FUELCAN ends
  830. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  831. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  832.  
  833. // Shotgun 1-2 shotgun blasts.
  834.  
  835. state standard_jibs
  836.     guts JIBS2 2
  837.     guts JIBS3 3
  838.     guts JIBS4 6
  839.     guts JIBS5 4
  840.     guts JIBS6 6
  841.     ifrnd 16 guts JIBS1 1                // spine
  842.  
  843.     ifrnd 96
  844.     {
  845.         ifrnd 32 globalsound JIBBED_ACTOR1
  846.         else ifrnd 42 globalsound JIBBED_ACTOR2
  847.         else ifrnd 52 globalsound JIBBED_ACTOR3
  848.         else ifrnd 62 globalsound JIBBED_ACTOR5
  849.         else ifrnd 72 globalsound JIBBED_ACTOR6
  850.         else ifrnd 82  globalsound JIBBED_ACTOR7
  851.         else ifrnd 92 globalsound JIBBED_ACTOR4
  852.     }
  853. //    else sound SQUISHED
  854. ends
  855.  
  856. state troop_body_jibs
  857.     ifrnd 64 guts HEADJIB1 1
  858.     ifrnd 64 guts LEGJIB1 2
  859.     ifrnd 64 guts ARMJIB1 1
  860.     ifrnd 48 spawn BLOODPOOL
  861. ends
  862.  
  863. state liz_body_jibs
  864. ifrnd 64 guts LIZMANHEAD1 1
  865.     ifrnd 64 guts LIZMANLEG1 2
  866.     ifrnd 64 guts LIZMANARM1 1
  867.     ifrnd 48 spawn BLOODPOOL
  868. ends
  869.  
  870. state delete_enemy killit ends
  871.  
  872.  
  873. action BLOODFRAMES 0 4 1 1 15
  874. actor BLOOD 0 BLOODFRAMES
  875.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  876.     ifpdistg 3144 killit
  877.     ifactioncount 4 killit
  878. enda
  879.  
  880. action EGGOPEN1 1 1 1 1 4
  881. action EGGOPEN2 2 1 1 1 4
  882. action EGGOPEN3 2 1 1 1 4
  883.  
  884. actor EGG TOUGH
  885.     ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  886.     ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  887.     ifhitweapon { ifdead { addkills 1 state standard_jibs state delete_enemy } else ifaction 0 action EGGOPEN1 }
  888. enda
  889.  
  890. actor KNEE KNEE_WEAPON_STRENGTH enda
  891. actor SPIT SPIT_WEAPON_STRENGTH enda
  892. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  893. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  894. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  895. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  896. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  897. actor MORTER MORTER_WEAPON_STRENGTH enda
  898. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  899. actor RPG RPG_WEAPON_STRENGTH enda
  900. actor THROWFLAME FLAMETHROWER_WEAPON_STRENGTH enda
  901. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  902. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  903.  
  904. action WEAP2FRAMES 0  4  1  1  6
  905. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  906.     ifdead killit
  907.     ifactioncount 4 killit
  908.     else
  909.     {
  910.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  911.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  912.     }
  913. enda
  914.  
  915. state standard_pjibs
  916.     guts JIBS1 1
  917.     guts JIBS3 2
  918.     guts JIBS4 1
  919.     guts JIBS5 1
  920.     guts JIBS6 2
  921.     guts DUKETORSO 1
  922.     guts DUKELEG 2
  923.     guts DUKEGUN 1
  924.     ifrnd 16 money 1
  925. ends
  926.  
  927. move DUKENOTMOVING
  928. state handle_dead_dukes
  929.     fall
  930.     ifmove 0     // 1st time initializiation...
  931.     {
  932.         ifrnd 128 cstat 4
  933.         else cstat 0
  934.         move DUKENOTMOVING
  935.     }
  936.  
  937.     ifsquished
  938.     {
  939.         sound SQUISHED
  940.         spawn OOZ
  941.         killit
  942.     }
  943.     else ifcount 1024 ifpdistg 4096 killit
  944.     else
  945.     {
  946.         strength 0
  947.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  948.         {
  949.             state standard_jibs
  950.             killit
  951.         }
  952.     }
  953. ends
  954.  
  955. action PLYINGFRAMES 0 1 0 1 1
  956. actor DUKELYINGDEAD 0 PLYINGFRAMES
  957.     state handle_dead_dukes
  958. enda
  959.  
  960. action PSTAND       0   1   5   1    1
  961. action PEXPLODE     106   5   1   1   10
  962. action PEXPLODEAD   113   1   1
  963.  
  964. action PJPHOUVER    15   1   5   1
  965. action PWALK        20   4   5   1   16
  966. action PRUN         20   4   5   1   10
  967. action PWALKBACK    45   4   5  -1   16
  968. action PRUNBACK     45   4   5  -1   10
  969. action PJUMPING     50   4   5   1   30
  970. action PFALLING     65   1   5
  971. action PDUCKING     86   1   5
  972. action PCRAWLING    86   3   5   1   20
  973. action PAKICKING    40   2   5   1   25
  974. action PFLINTCHING  106  1   1   1   10
  975. action PTHROWNBACK  106  5   1   1   18
  976. action PLYINGDEAD   113  1   1
  977.  
  978. action PSWIMMINGGO   375   1   5   1   10
  979. action PSWIMMING     375   4   5   1   13
  980. action PSWIMMINGWAIT 395   1   5   1   13
  981. action PTREDWATER    395   2   5   1   17
  982.  
  983. // move PHITHARD   0 -32
  984. move PSTOPED
  985. move PSHRINKING // used as a var only
  986.  
  987. state check_dead_thrown_back
  988.     ifdead
  989.     {
  990.         strength 0
  991.         action PTHROWNBACK
  992. //        move PHITHARD geth getv
  993.     }
  994. ends
  995.  
  996. state check_pstandard
  997.     ifp pwalking action PWALK
  998.     else ifp pkicking action PAKICKING
  999.     else ifp pwalkingback action PWALKBACK
  1000.     else ifp prunning action PRUN
  1001.     else ifp prunningback action PRUNBACK
  1002.     else ifp pjumping
  1003.         action PJUMPING
  1004.     else ifp pducking action PDUCKING
  1005. ends
  1006.  
  1007. state random_wall_jibs
  1008.     ifrnd 96 shoot BLOODSPLAT1
  1009.     ifrnd 96 shoot BLOODSPLAT2
  1010.     ifrnd 96 shoot BLOODSPLAT3
  1011.     ifrnd 96 shoot BLOODSPLAT4
  1012.     ifrnd 96 shoot BLOODSPLAT1
  1013. ends
  1014.  
  1015. actor APLAYER 100 PSTAND
  1016.  
  1017.     ifaction 0 action PSTAND
  1018.     ifdead
  1019.     {
  1020.         ifsquished palfrom 32 63 63 63
  1021.         else fall
  1022.  
  1023.         ifactioncount 7 { move 0 } else ifactioncount 6
  1024.         {
  1025.             ifrnd 84 globalsound DUKE_KILLED1
  1026.             else ifrnd 108 globalsound DUKE_KILLED2
  1027.             else globalsound DUKE_KILLED3
  1028.         }
  1029.  
  1030.         ifaction PLYINGDEAD
  1031.         {
  1032.             ifactioncount 3 move PSTOPED
  1033.             quote 13
  1034.             ifhitspace
  1035.             {
  1036.                 action PSTAND
  1037.                 spawn DUKELYINGDEAD
  1038.                 resetplayer
  1039.             }
  1040.             break
  1041.         }
  1042.         else ifaction PTHROWNBACK
  1043.         {
  1044.             ifactioncount 5
  1045.             {
  1046.                 spawn BLOODPOOL
  1047.                 action PLYINGDEAD
  1048.             }
  1049.             else ifactioncount 1 move 0
  1050.             break
  1051.         }
  1052.         else ifaction PEXPLODEAD
  1053.         {
  1054.             quote 13
  1055.             ifhitspace
  1056.             {
  1057.                 action PSTAND
  1058.                 resetplayer
  1059.             }
  1060.             break
  1061.         }
  1062.         else ifaction PEXPLODE
  1063.         {
  1064.             ifactioncount 5
  1065.             {
  1066.                 action PEXPLODEAD
  1067.                 spawn BLOODPOOL
  1068.             }
  1069.             break
  1070.         }
  1071.  
  1072.         else ifp pshrunk
  1073.         {
  1074.             state standard_pjibs
  1075.             spawn BLOODPOOL
  1076.  
  1077.             sound SQUISHED
  1078.             cstat 32768                 // Hide the sprite
  1079.  
  1080.             action PLYINGDEAD
  1081.         }
  1082.  
  1083.         else
  1084.         {
  1085.             ifinwater
  1086.             {
  1087.                 action PLYINGDEAD
  1088.                 spawn WATERBUBBLE
  1089.                 spawn WATERBUBBLE
  1090.             }
  1091.             else
  1092.             {
  1093.                 action PEXPLODE
  1094.                 state standard_pjibs
  1095.                 cstat 32768
  1096.                 sound SQUISHED
  1097.             }
  1098.         }
  1099.         break
  1100.     }
  1101.     ifsquished
  1102.     {
  1103.         strength -1
  1104.         sound SQUISHED
  1105.         spawn OOZ
  1106.         break
  1107.     }
  1108.  
  1109.     ifp ponsteroids
  1110.     {
  1111.         ifp pstanding { }
  1112.         else spawn FRAMEEFFECT1
  1113.     }
  1114.  
  1115.     ifmove PSHRINKING
  1116.     {
  1117.         ifcount 32
  1118.         {
  1119.             ifcount SHRUNKDONECOUNT move 0
  1120.             else ifcount SHRUNKCOUNT
  1121.             {
  1122.                 sizeto 42 36
  1123.                 ifgapzl 24
  1124.                 {
  1125.                     strength 0
  1126.                     sound SQUISHED
  1127.                     palfrom 48 64
  1128.                     break
  1129.                 }
  1130.             }
  1131.             else ifp ponsteroids count SHRUNKCOUNT
  1132.         }
  1133.         else
  1134.         {
  1135.             ifp ponsteroids count SHRUNKCOUNT
  1136.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1137.         }
  1138.     }
  1139.  
  1140.     else ifhitweapon
  1141.     {
  1142.         ifdead cstat 0 else sound DUKE_LONGTERM_PAIN
  1143.  
  1144.         ifstrength TOUGH
  1145.         {
  1146.             state headhitstate
  1147.             ifp pstanding action PFLINTCHING
  1148.         }
  1149.  
  1150.         ifwasweapon RPG
  1151.         {
  1152.             ifrnd 32 spawn BLOOD
  1153.             ifdead state standard_pjibs
  1154.             palfrom 48 52
  1155.             break
  1156.         }
  1157.         ifwasweapon RADIUSEXPLOSION
  1158.         {
  1159.             ifrnd 32 spawn BLOOD
  1160.             ifdead state standard_pjibs
  1161.             palfrom 48 52
  1162.             break
  1163.         }
  1164.         ifwasweapon FIREEXT
  1165.         {
  1166.             ifrnd 32 spawn BLOOD
  1167.             ifdead state standard_pjibs
  1168.             palfrom 48 52
  1169.             break
  1170.         }
  1171.  
  1172.  
  1173.         ifwasweapon SHRINKSPARK
  1174.         {
  1175.             palfrom 48 0 48
  1176.             move PSHRINKING // used as a var only.
  1177.             sound ACTOR_SHRINKING
  1178.             break
  1179.         }
  1180.  
  1181.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1182.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1183.         else ifwasweapon KNEE palfrom 16 32
  1184.         else ifwasweapon FIRELASER palfrom 32 32
  1185.         else ifwasweapon THROWFLAME { quote 108 palfrom 32 64 ifrnd 16 spawn BURNING }
  1186.  
  1187.         state check_dead_thrown_back
  1188.         state random_wall_jibs
  1189.  
  1190.         break
  1191.     }
  1192.  
  1193.     ifaction PFLINTCHING
  1194.     {
  1195.         ifactioncount 2 action PSTAND
  1196.         break
  1197.     }
  1198.  
  1199.     ifinwater
  1200.     {
  1201.         ifaction PTREDWATER
  1202.         {
  1203.             ifp pwalking prunning action PSWIMMINGGO
  1204.         }
  1205.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1206.         else
  1207.         {
  1208.             ifaction PSWIMMING
  1209.             {
  1210.                 ifrnd 4 spawn WATERBUBBLE
  1211.                 ifactioncount 4
  1212.                     action PSWIMMINGWAIT
  1213.             }
  1214.             else ifaction PSWIMMINGWAIT
  1215.             {
  1216.                 ifactioncount 2
  1217.                     action PSWIMMINGGO
  1218.             }
  1219.             else ifaction PSWIMMINGGO
  1220.             {
  1221.                 ifactioncount 2
  1222.                     action PSWIMMING
  1223.             }
  1224.             else action PTREDWATER
  1225.         }
  1226.  
  1227.         ifrnd 4 spawn WATERBUBBLE // For effect
  1228.  
  1229.         break
  1230.     }
  1231.     else ifp pjetpack
  1232.     {
  1233.         ifaction PJPHOUVER
  1234.         {
  1235.             ifactioncount 4
  1236.                 resetactioncount
  1237.         }
  1238.         else action PJPHOUVER
  1239.         break
  1240.     }
  1241.     else
  1242.     {
  1243.         ifaction PTREDWATER action PSTAND
  1244.         ifaction PSWIMMING action PSTAND
  1245.         ifaction PSWIMMINGWAIT action PSTAND
  1246.         ifaction PSWIMMINGGO action PSTAND
  1247.         ifaction PJPHOUVER action PFALLING
  1248.     }
  1249.  
  1250.     ifaction PFALLING
  1251.     {
  1252.         ifp ponground
  1253.             action PSTAND
  1254.         else
  1255.         {
  1256.             ifp pfalling break
  1257.             else state check_pstandard
  1258.         }
  1259.     }
  1260.  
  1261.     ifaction PDUCKING
  1262.     {
  1263.         ifgapzl 48
  1264.         {
  1265.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1266.         }
  1267.         else ifp pducking
  1268.         {
  1269.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1270.         }
  1271.         else
  1272.         {
  1273.             ifp pstanding action PSTAND
  1274.             else state check_pstandard
  1275.         }
  1276.     }
  1277.  
  1278.     else ifaction PCRAWLING
  1279.     {
  1280.         ifgapzl 48
  1281.         {
  1282.             ifp pstanding action PCRAWLING
  1283.         }
  1284.         else ifp pducking
  1285.         {
  1286.             ifp pstanding action PDUCKING
  1287.         }
  1288.         else
  1289.         {
  1290.             ifp pstanding action PSTAND
  1291.             else state check_pstandard
  1292.         }
  1293.     }
  1294.     else ifgapzl 48 action PDUCKING
  1295.  
  1296.     else ifaction PJUMPING
  1297.     {
  1298.         ifp ponground action PSTAND
  1299.         else ifactioncount 4 ifp pfalling action PFALLING
  1300.     }
  1301.  
  1302.     ifp pfalling action PFALLING
  1303.     else ifaction PSTAND state check_pstandard
  1304.     else ifaction PAKICKING
  1305.     {
  1306.         ifactioncount 2 action PSTAND
  1307.         break
  1308.     }
  1309.     else ifaction PWALK
  1310.     {
  1311.         ifp pfalling action PFALLING
  1312.         else ifp pstanding action PSTAND
  1313.         else ifp prunning action PRUN
  1314.         else ifp pwalkingback action PWALKBACK
  1315.         else ifp prunningback action PRUNBACK
  1316.         else ifp pjumping
  1317.             action PJUMPING
  1318.         else ifp pducking action PDUCKING
  1319.     }
  1320.  
  1321.     else ifaction PRUN
  1322.     {
  1323.         ifp pstanding action PSTAND
  1324.         else ifp pwalking action PWALK
  1325.         else ifp pwalkingback action PWALKBACK
  1326.         else ifp prunningback action PRUNBACK
  1327.         else ifp pjumping
  1328.             action PJUMPING
  1329.         else ifp pducking action PDUCKING
  1330.     }
  1331.  
  1332.     else ifaction PWALKBACK
  1333.     {
  1334.         ifp pstanding action PSTAND
  1335.         else ifp pwalking action PWALK
  1336.         else ifp prunning action PRUN
  1337.         else ifp prunningback action PRUNBACK
  1338.         else ifp pjumping
  1339.             action PJUMPING
  1340.         else ifp pducking action PDUCKING
  1341.     }
  1342.  
  1343.     else ifaction PRUNBACK
  1344.     {
  1345.         ifp pstanding action PSTAND
  1346.         else ifp pwalking action PWALK
  1347.         else ifp prunning action PRUN
  1348.         else ifp pwalkingback action PWALKBACK
  1349.         else ifp pjumping
  1350.             action PJUMPING
  1351.         else ifp pducking action PDUCKING
  1352.     }
  1353. enda
  1354.  
  1355. state genericshrunkcode
  1356.     ifcount 32 { ifpdistl RETRIEVEDISTANCE pstomp }
  1357.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  1358. ends
  1359.  
  1360. actor ORGANTIC TURRETSTRENGTH
  1361.     ifcount 48 resetcount
  1362.     else { ifcount 32 sizeto 32 32 }
  1363.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1364.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1365.     ifrnd 1 soundonce TURR_ROAM
  1366. enda
  1367.  
  1368. state rf
  1369.     ifrnd 128 cstat 4
  1370.     else cstat 0
  1371. ends
  1372.  
  1373. //
  1374. //
  1375. //      TROOP/LIZTROOP CODE
  1376. //
  1377. //
  1378.  
  1379. action ATROOPSTAND       0    1    5    1    1
  1380. action ATROOPSTAYSTAND  -2    1    5    1    1
  1381. action ATROOPWALKING     0    4    5    1   12
  1382. action ATROOPWALKINGBACK 15   4    5   -1   12
  1383. action ATROOPRUNNING     0    4    5    1    8
  1384. action ATROOPSHOOT      35    1    5    1   30
  1385. action ATROOPJETPACK    40    1    5    1    1
  1386. action ATROOPJETPACKILL 40    2    5    1   50
  1387. action ATROOPFLINTCH    50    1    1    1    6
  1388. action ATROOPDYING      50    5    1    1   16
  1389. action ATROOPDEAD       54
  1390. action ATROOPPLAYDEAD   54
  1391. action ATROOPSUFFERDEAD 58    2    1   -4   24
  1392. action ATROOPSUFFERING  59    2    1    1   21
  1393. action ATROOPDUCK       64    1    5    1    3
  1394. action ATROOPDUCKSHOOT  64    2    5    1   25
  1395. action ATROOPABOUTHIDE  74    1    1    1   25
  1396. action ATROOPHIDE       79    1    1    1   25
  1397. action ATROOPREAPPEAR   74    1    1    1   25
  1398.  
  1399. move TROOPWALKVELS 72
  1400. move TROOPWALKVELSBACK -72
  1401. move TROOPJETPACKVELS 64 -84
  1402. move TROOPJETPACKILLVELS 192 -38
  1403. move TROOPRUNVELS 108
  1404. move TROOPSTOPPED
  1405. move DONTGETUP
  1406. move SHRUNKVELS 32
  1407.  
  1408. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  1409. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  1410. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  1411. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK face_player
  1412. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  1413. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  face_player
  1414. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  face_player
  1415. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  1416. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  1417. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED face_player
  1418.  
  1419. state troophidestate
  1420.     ifaction ATROOPREAPPEAR
  1421.     {
  1422.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  1423.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  1424.     }
  1425.     else ifaction ATROOPWALKING
  1426.     {
  1427.         ifpdistl 2448 ifpdistg 1024
  1428.         {
  1429.             ifceilingdistl 48 break
  1430.             ifp pfacing break
  1431.  
  1432.             ifgapzl 48 { } else ifcanshoottarget { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  1433.         }
  1434.     }
  1435.     else ifaction ATROOPHIDE
  1436.     {
  1437.         ifactioncount 2
  1438.         {
  1439.             spawn TRANSPORTERSTAR
  1440.             sound TELEPORTER
  1441.             action ATROOPWALKING move TROOPWALKVELS face_player
  1442.             cstat 32768
  1443.         }
  1444.         else
  1445.         {
  1446.             sizeto 0 40
  1447.             sizeto 0 40
  1448.             sizeto 0 40
  1449.             sizeto 0 40
  1450.             spawn FRAMEEFFECT1
  1451.         }
  1452.     }
  1453.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  1454. ends
  1455.  
  1456.  
  1457. state troopgunnashoot
  1458.     ifp palive
  1459.     {
  1460.         ifpdistl 1024 ai AITROOPSHOOTING
  1461.         else ifactornotstayput
  1462.         {
  1463.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  1464.             {
  1465.                 ifspritepal 21 ifpdistg 4096 ai AITROOPHIDE
  1466.                 else
  1467.                 {
  1468.                     ifpdistl 1100 ai AITROOPFLEEING
  1469.                     else
  1470.                     {
  1471.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  1472.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  1473.                     }
  1474.                 }
  1475.             }
  1476.         }
  1477.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  1478.     }
  1479. ends
  1480.  
  1481. state troopseekstate
  1482.     state troopgunnashoot
  1483.     ifcansee
  1484.     {
  1485.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  1486.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  1487.         else ifrnd 2 ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING }
  1488.         ifrnd 16 ifspritepal 21 ifpdistg 1596 ai AITROOPHIDE
  1489.     }
  1490.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  1491.     ifrnd 1
  1492.     {
  1493.         ifrnd 128 soundonce PRED_ROAM
  1494.         else soundonce PRED_ROAM2
  1495.     }
  1496. ends
  1497.  
  1498. state troopduckstate
  1499.     ifaction ATROOPDUCK
  1500.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  1501.     else ifaction ATROOPDUCKSHOOT
  1502.     {
  1503.         ifcount 64
  1504.         {
  1505.             ifmove DONTGETUP resetcount
  1506.             else
  1507.             {
  1508.                 ifpdistl 1100
  1509.                     ai AITROOPFLEEING
  1510.                 else ai AITROOPSEEKPLAYER
  1511.             }
  1512.         }
  1513.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  1514.     }
  1515. ends
  1516.  
  1517. state troopshootstate
  1518.     ifactioncount 2
  1519.     {
  1520.         ifcanshoottarget
  1521.         {
  1522.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  1523.             ifrnd 128 ai AITROOPSEEKPLAYER
  1524.             ifcount 24
  1525.             {
  1526.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  1527.                 else
  1528.                 {
  1529.                     ifpdistg 1596 ai AITROOPFLEEING
  1530.                     else ai AITROOPFLEEINGBACK
  1531.                 }
  1532.             }
  1533.         }
  1534.         else ai AITROOPSEEKPLAYER
  1535.     }
  1536. ends
  1537.  
  1538. state troopfleestate
  1539.     ifactioncount 7
  1540.     {
  1541.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  1542.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  1543.     }
  1544.     ifnotmoving
  1545.     {
  1546.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  1547.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  1548.     }
  1549. ends
  1550.  
  1551. state troopdying
  1552.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  1553.     else { state rf move 0 action ATROOPDYING }
  1554. ends
  1555.  
  1556. state checktroophit
  1557.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1558.     state standard_jibs
  1559.     ifdead
  1560.     {
  1561.         state drop_ammo
  1562.         state random_wall_jibs
  1563.         addkills 1
  1564.  
  1565.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1566.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1567.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1568.         else { ifrnd 64 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  1569.         sound PRED_DYING
  1570.     }
  1571.     else
  1572.     {
  1573.         state random_wall_jibs
  1574.         sound PRED_PAIN
  1575.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  1576.         else ifwasweapon THROWFLAME quote 14
  1577.         iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  1578.     }
  1579. ends
  1580.  
  1581. state troopjetpackstate
  1582.     ifaction ATROOPJETPACKILL
  1583.     {
  1584.         ifcansee ifactioncount 2
  1585.         {
  1586.             resetactioncount
  1587.             sound PRED_ATTACK
  1588.             shoot FIRELASER
  1589.         }
  1590.  
  1591.         ifp phigher ai AITROOPJETPACK
  1592.         else ifinwater ai AITROOPJETPACK
  1593.         ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  1594.     }
  1595.     else ifcount 48 ifcansee
  1596.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  1597. ends
  1598.  
  1599. state checksquished
  1600.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  1601. ends
  1602.  
  1603. state troopsufferingstate
  1604.     ifactioncount 2
  1605.     {
  1606.         ifrnd 16 spawn WATERDRIP
  1607.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1608.     }
  1609. ends
  1610.  
  1611. state troopshrunkstate
  1612.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AITROOPSEEKENEMY }
  1613.     else ifcount SHRUNKCOUNT sizeto 48 40
  1614.     else state genericshrunkcode
  1615. ends
  1616.  
  1617. state troopcode fall
  1618.     ifinwater ifrnd 1 spawn WATERBUBBLE
  1619.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  1620.  
  1621.     ifinwater ifrnd 4 spawn WATERBUBBLE
  1622.     else ifaction ATROOPPLAYDEAD
  1623.     {
  1624.         ifhitweapon
  1625.         {
  1626.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1627.             break
  1628.         }
  1629.         else state checksquished
  1630.  
  1631.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  1632.         else ifp pfacing resetcount
  1633.  
  1634.         break
  1635.     }
  1636.     else ifaction ATROOPDEAD
  1637.     {
  1638.         strength 0
  1639.         ifrespawn ifcount RESPAWNTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  1640.         ifhitweapon
  1641.         {
  1642.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1643.             break
  1644.         }
  1645.         else state checksquished
  1646.         break
  1647.     }
  1648.     else ifaction ATROOPSUFFERDEAD
  1649.     {
  1650.         ifactioncount 2
  1651.         {
  1652.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  1653.             else { soundonce PRED_DYING action ATROOPDEAD }
  1654.         }
  1655.     }
  1656.     else ifaction ATROOPDYING { state troopdying break }
  1657.     else ifaction ATROOPSUFFERING
  1658.         { state troopsufferingstate ifhitweapon state checktroophit break }
  1659.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  1660.     else
  1661.     {
  1662.         ifai AITROOPSEEKPLAYER state troopseekstate
  1663.         else ifai AITROOPJETPACK { state troopjetpackstate soundonce DUKE_JETPACK_IDLE }
  1664.         else ifai AITROOPSEEKENEMY state troopseekstate
  1665.         else ifai AITROOPSHOOTING state troopshootstate
  1666.         else ifai AITROOPFLEEING state troopfleestate
  1667.         else ifai AITROOPFLEEINGBACK state troopfleestate
  1668.         else ifai AITROOPDODGE state troopseekstate
  1669.         else ifai AITROOPDUCKING state troopduckstate
  1670.         else ifai AITROOPSHRUNK state troopshrunkstate
  1671.         else ifai AITROOPHIDE { state troophidestate break }
  1672.     }
  1673.  
  1674.     ifhitweapon state checktroophit else state checksquished
  1675. ends
  1676.  
  1677.  
  1678.  
  1679.  
  1680. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  1681. actor LIZTROOPDUCKING TROOPSTRENGTH
  1682.     ai AITROOPDUCKING cactor LIZTROOP
  1683.     ifgapzl 48 move DONTGETUP
  1684. enda
  1685.  
  1686. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  1687. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1688. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1689. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  1690.  
  1691. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  1692.  
  1693.  
  1694. action ALIZWALKING       0     4    5    1    15
  1695. action ALIZRUNNING       0     4    5    1    11
  1696. action ALIZTHINK         20    2    5    1    40
  1697. action ALIZSCREAM        30    1    5    1    2
  1698. action ALIZJUMP          40    4    5    1    16
  1699. action ALIZSHOOTING      70    2    5    1    20
  1700. action ALIZDYING         60    6    1    1    15
  1701. action ALIZLYINGDEAD     66    1
  1702.  
  1703. move LIZWALKVEL 72
  1704. move LIZRUNVEL 192
  1705. move LIZJUMPVEL  96 -84
  1706. move LIZSTOP
  1707.  
  1708. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  1709. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  1710. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL face_player
  1711. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  1712. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP face_player
  1713. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL face_player
  1714. ai AILIZTHINK ALIZTHINK LIZSTOP face_player
  1715. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS face_player
  1716. ai AILIZSPIT ALIZSCREAM LIZSTOP face_player
  1717. ai AILIZDYING ALIZDYING LIZSTOP face_player
  1718.  
  1719. state lizseekstate
  1720.  
  1721.     ifp palive ifcount 52 ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  1722.  
  1723.     ifai AILIZCHARGEENEMY
  1724.     {
  1725.         ifpdistl 2048
  1726.         {
  1727.             ifrnd 128 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY
  1728.             else ifgapzl 128 ifactornotstayput ai AILIZJUMPENEMY
  1729.         }
  1730.         break
  1731.     }
  1732.     ifrnd 32 ifnotmoving operate
  1733.     ifpdistg 4096 { ifrnd 32 ai AILIZCHARGEENEMY }
  1734.  
  1735.     ifrnd 1 ifbulletnear
  1736.     {
  1737.         ifgapzl 128 ai AILIZDODGE
  1738.         else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1739.     }
  1740. ends
  1741.  
  1742. state lizshrunkstate
  1743.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy } ai AILIZGETENEMY }
  1744.     else ifcount SHRUNKCOUNT sizeto 48 40
  1745.     else state genericshrunkcode
  1746. ends
  1747.  
  1748. state lizfleestate
  1749.     ifnotmoving ai AILIZGETENEMY
  1750.     else ifrnd 16 ifpdistl 2048 ifp palive ifcansee ai AILIZSPIT
  1751. ends
  1752.  
  1753. state lizthinkstate
  1754.     ifrnd 8 soundonce CAPT_ROAM
  1755.     ifactioncount 3
  1756.     {
  1757.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  1758.         else ifrnd 96 ai AILIZGETENEMY
  1759.     }
  1760.     else ifactioncount 2 ifrnd 8 spawn FECES
  1761.     ifrnd 1 ifbulletnear
  1762.     {
  1763.         ifgapzl 128 ai AILIZDODGE
  1764.         else { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1765.     }
  1766. ends
  1767.  
  1768. state lizshootstate
  1769.     ifcount 32 ifrnd 128 { ifpdistl 2048 ai AILIZFLEENEMY else { ifrnd 96 ai AILIZTHINK else ai AILIZGETENEMY } }
  1770.     ifactioncount 2 { ifcanshoottarget { sound CAPT_ATTACK shoot FLAMETHROWER resetactioncount } else ai AILIZTHINK }
  1771. ends
  1772.  
  1773. state checklizhit
  1774.     spawn BLOOD
  1775.     ifai AILIZSHRUNK
  1776.         { sound SQUISHED state standard_jibs state delete_enemy }
  1777.     ifdead
  1778.     {
  1779.         state drop_fuel
  1780.         addkills 1
  1781.  
  1782.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1783.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1784.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1785.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  1786.         sound CAPT_DYING
  1787.     }
  1788.     else
  1789.     {
  1790.         sound CAPT_PAIN
  1791.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK }
  1792.         else ifwasweapon THROWFLAME quote 14
  1793.         state random_wall_jibs
  1794.     }
  1795. ends
  1796.  
  1797. state lizjumpstate
  1798.     ifactioncount 6
  1799.     {
  1800.         ifpdistl 1024
  1801.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  1802.         else ai AILIZGETENEMY else ifactioncount 2 fall
  1803.     }
  1804. ends
  1805.  
  1806. state lizdyingstate
  1807.     ifaction ALIZLYINGDEAD
  1808.     {
  1809.         strength 0
  1810.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  1811.         ifcount RESPAWNTIME ifrespawn
  1812.         {
  1813.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  1814.         }
  1815.     }
  1816.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  1817. ends
  1818.  
  1819. state lizdodgestate
  1820.     ifcount 32 ai AILIZGETENEMY
  1821. ends
  1822.  
  1823. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  1824.  
  1825. actor LIZMAN LIZSTRENGTH
  1826.     state checksquished
  1827.     ifai 0 ai AILIZGETENEMY
  1828.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  1829.     else ifai AILIZJUMPENEMY state lizjumpstate
  1830.     else
  1831.     {
  1832.         fall
  1833.         ifai AILIZGETENEMY state lizseekstate
  1834.         else ifai AILIZCHARGEENEMY state lizseekstate
  1835.         else ifai AILIZDODGE state lizdodgestate
  1836.         else ifai AILIZSHOOTENEMY state lizshootstate
  1837.         else ifai AILIZFLEENEMY state lizfleestate
  1838.         else ifai AILIZTHINK state lizthinkstate
  1839.         else ifai AILIZSHRUNK state lizshrunkstate
  1840.         else ifai AILIZDYING state lizdyingstate
  1841.         else ifai AILIZSPIT
  1842.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  1843.     }
  1844.     ifhitweapon state checklizhit
  1845. enda
  1846.  
  1847. action SNAKEFRAMES     0   1   5   1   1
  1848. action SNAKESCREAM     5   1   5   1   1
  1849. move SNAKERUNVELS 244 256
  1850. move SNAKERUNUPVELS 244 -256
  1851. move SNAKEBACKWARDS -48 -64
  1852. move SNAKEWALK 72
  1853. move SNAKERISE 32 -16
  1854. move SNAKESTOPPED
  1855. ai AISNAKEGETE SNAKESCREAM SNAKERUNVELS seekplayer
  1856. ai AISNAKEGETUP SNAKESCREAM SNAKERUNUPVELS seekplayer
  1857. ai AISNAKEWALK SNAKEFRAMES SNAKEWALK seekplayer
  1858. ai AISNAKELOOK SNAKEFRAMES SNAKESTOPPED looking
  1859. ai AISNAKEPULLBACK SNAKEFRAMES SNAKEBACKWARDS face_player
  1860. ai AISNAKEHIT SNAKESCREAM SNAKEBACKWARDS face_player
  1861. ai AISNAKESHRUNK SNAKEFRAMES SHRUNKVELS fleeenemy
  1862.  
  1863. state checksnakehitstate
  1864.     state random_wall_jibs
  1865.     ifwasweapon SHRINKSPARK ai AISNAKESHRUNK
  1866.     else
  1867.     {
  1868.         ifdead { addkills 1 sound SNAK_DYING state standard_jibs state delete_enemy }
  1869.         else { sound SNAK_PAIN ai AISNAKEHIT }
  1870.     }
  1871. ends
  1872.  
  1873. state snakeshrunkstate
  1874.     ifcount 24 state delete_enemy
  1875.     else sizeto 1 1
  1876. ends
  1877.  
  1878. actor SNAKEDRONE SNAKESTRENGTH
  1879.     ifaction 0 ai AISNAKELOOK
  1880.     ifrnd 8 spawn WATERDRIP
  1881.  
  1882.     state checksquished
  1883.  
  1884.     ifai AISNAKELOOK
  1885.     {
  1886.         ifrnd 1 soundonce SNAK_ROAM
  1887.         ifactioncount 8 ifrnd 2
  1888.         {
  1889.             ifcansee
  1890.             {
  1891.                 ifcanshoottarget { sound SNAK_ATTACK1 ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1892.                 else ai AISNAKEWALK
  1893.             }
  1894.             else ai AISNAKEWALK
  1895.         }
  1896.     }
  1897.     else ifai AISNAKEWALK
  1898.     {
  1899.         ifcansee { }
  1900.         ifrnd 32 ifnotmoving move SNAKERISE seekplayer
  1901.  
  1902.         ifcount 64
  1903.         {
  1904.             ifpdistl 4096 ifcanseetarget { ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1905.             else resetcount
  1906.         }
  1907.     }
  1908.     else ifai AISNAKEGETE
  1909.     {
  1910.         ifcansee { }
  1911.         ifcount 64 ai AISNAKEPULLBACK
  1912.         ifpdistl 1024
  1913.         {
  1914.             sound SNAK_ATTACK2
  1915.             shoot SHOTSPARK1
  1916.             ai AISNAKEPULLBACK
  1917.         }
  1918.         ifnotmoving
  1919.             ifcount 16 ai AISNAKEPULLBACK
  1920.     }
  1921.     else ifai AISNAKEGETUP
  1922.     {
  1923.         ifcansee { }
  1924.         ifcount 64 ai AISNAKEPULLBACK
  1925.         ifpdistl 1024
  1926.         {
  1927.             sound SNAK_ATTACK2
  1928.             shoot SHOTSPARK1
  1929.             ai AISNAKEPULLBACK
  1930.         }
  1931.         ifnotmoving
  1932.             ifcount 16 ai AISNAKEPULLBACK
  1933.     }
  1934.     ifai AISNAKEPULLBACK { ifnotmoving ai AISNAKELOOK ifcount 32 ai AISNAKELOOK }
  1935.     else ifai AISNAKEHIT ifcount 8 ai AISNAKELOOK
  1936.     else ifai AISNAKESHRUNK state snakeshrunkstate
  1937.     ifhitweapon state checksnakehitstate
  1938. enda
  1939.  
  1940.  
  1941.  
  1942. action AJELLYWALK        0   3   5   1   15
  1943. action AJELLYSTAND       0   1   5   1   15
  1944. action AJELLYSCRATCH     0   4   5   1   15
  1945. action AJELLYHIT        30   1   1   1   10
  1946. action AJELLYSHOOT      20   1   5   1   10
  1947. action AJELLYDYING      30   8   1   1   17
  1948. action AJELLYDEAD       38   1   1   1    1
  1949.  
  1950. move JELLYWALKVELS 96 -30
  1951. move JELLYUPVELS 96 -70
  1952. move JELLYSTOPPED 0 -30
  1953. move JELLYINWATER 96 24
  1954.  
  1955. ai AIJELLYGETENEMY AJELLYWALK JELLYWALKVELS seekplayer
  1956. ai AIJELLYSHOOTENEMY AJELLYSHOOT JELLYSTOPPED face_player
  1957. ai AIJELLYSCRATCHENEMY AJELLYSCRATCH JELLYSTOPPED face_player
  1958. ai AIJELLYHIT AJELLYHIT JELLYSTOPPED face_player
  1959. ai AIJELLYSHRUNK AJELLYWALK SHRUNKVELS face_player
  1960. ai AIJELLYDYING AJELLYDYING JELLYSTOPPED face_player
  1961.  
  1962. state jellygetenemystate
  1963.  
  1964.     ifcansee
  1965.     {
  1966.         ifactioncount 32 { ifrnd 48 ifcansee ifcanshoottarget { sound OCTA_ATTACK1 ai AIJELLYSHOOTENEMY break } }
  1967.         else
  1968.         {
  1969.             ifpdistl 1024 ai AIJELLYSCRATCHENEMY
  1970.             sizeto 40 40
  1971.         }
  1972.     }
  1973.  
  1974. ends
  1975.  
  1976. state jellyscratchenemystate
  1977.     ifpdistg 1280 ai AIJELLYGETENEMY
  1978.     else ifcount 32 { resetcount sound OCTA_ATTACK2 addphealth JELLYSCRATCHINGPLAYER }
  1979. ends
  1980.  
  1981. state jellyshootenemystate
  1982.     ifcount 25 { ifcount 27 ai AIJELLYGETENEMY }
  1983.     else ifcount 24 shoot COOLEXPLOSION1
  1984.     else
  1985.     {
  1986.         ifactioncount 6 resetactioncount
  1987.         else ifactioncount 3 { shadeto -127 shadeto -127 shadeto -127 shadeto -127 }
  1988.         else { shadeto 127 shadeto 127 shadeto 127 shadeto 127 }
  1989.     }
  1990. ends
  1991.  
  1992. state checkjellyhitstate
  1993.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIJELLYSHRUNK }
  1994.     else
  1995.     {
  1996.         ifdead
  1997.         {
  1998.             addkills 1
  1999.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2000.             else ifwasweapon THROWFLAME { sound SQUISHED spawn BURNING state standard_jibs state delete_enemy }
  2001.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2002.             else { state rf ai AIJELLYDYING }
  2003.             sound OCTA_DYING
  2004.         }
  2005.         else
  2006.         {
  2007.             ifwasweapon RPG
  2008.             {
  2009.                 sound OCTA_DYING addkills 1
  2010.                 state standard_jibs
  2011.                 killit
  2012.             }
  2013.             ifwasweapon THROWFLAME quote 14
  2014.             sound OCTA_PAIN spawn BLOOD
  2015.             ifrnd 64 ai AIJELLYHIT
  2016.  
  2017.         }
  2018.     }
  2019.     state random_wall_jibs
  2020. ends
  2021.  
  2022. state jellyshrunkstate
  2023.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2024.     else ifcount SHRUNKCOUNT sizeto 48 40
  2025.     else state genericshrunkcode
  2026. ends
  2027.  
  2028. state jellydyingstate
  2029.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move JELLYSTOPPED action AJELLYDEAD break }
  2030.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2031. ends
  2032.  
  2033. actor JELLYFISHSTAYPUT JELLYSTRENGTH ai AIJELLYGETENEMY cactor JELLYFISH enda
  2034.  
  2035. actor JELLYFISH JELLYSTRENGTH fall
  2036.  
  2037.     state checksquished
  2038.  
  2039.     ifai 0 ai AIJELLYGETENEMY
  2040.     else ifaction AJELLYDEAD
  2041.     {
  2042.         strength 0
  2043.         ifcount RESPAWNTIME ifrespawn
  2044.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength JELLYSTRENGTH ai AIJELLYGETENEMY }
  2045.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2046.         break
  2047.     }
  2048.     else
  2049.     {
  2050.         ifrnd 1 soundonce OCTA_ROAM
  2051.  
  2052.         ifai AIJELLYGETENEMY state jellygetenemystate
  2053.         else ifai AIJELLYHIT { ifcount 8 ai AIJELLYSHOOTENEMY }
  2054.         else ifai AIJELLYDYING { state jellydyingstate break }
  2055.         else ifai AIJELLYSCRATCHENEMY state jellyscratchenemystate
  2056.         else ifai AIJELLYSHOOTENEMY state jellyshootenemystate
  2057.         else ifai AIJELLYSHRUNK state jellyshrunkstate
  2058.  
  2059.         ifmove JELLYUPVELS { } else ifp phigher move JELLYUPVELS seekplayer
  2060.         else ifmove JELLYINWATER { } else ifinwater move JELLYINWATER seekplayer
  2061.  
  2062.         ifhitweapon state checkjellyhitstate
  2063.     }
  2064. enda
  2065.  
  2066. action APIGWALK         0  4 5 1 20
  2067. action APIGRUN          0  4 5 1 11
  2068. action APIGSHOOT        30 2 5 1 58
  2069. action APIGCOCK         25 1 5 1 16
  2070. action APIGSTAND        30 1 5 1 1
  2071. action APIGDIVE         40 2 5 1 40
  2072. action APIGDIVESHOOT    45 2 5 1 58
  2073. action APIGDYING        55 5 1 1 15
  2074. action APIGHIT          55 1 1 1 10
  2075. action APIGDEAD         60 1 1 1 1
  2076.  
  2077. move PIGWALKVELS 72
  2078. move PIGRUNVELS 108
  2079. move PIGSTOPPED
  2080.  
  2081. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2082. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED face_player
  2083. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2084. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED face_player
  2085. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2086. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2087. ai AIPIGDIVING APIGDIVE PIGSTOPPED face_player
  2088. ai AIPIGDYING APIGDYING PIGSTOPPED face_player
  2089. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2090. ai AIPIGHIT APIGHIT PIGSTOPPED face_player
  2091.  
  2092. state pigseekenemystate
  2093.  
  2094.     ifai AIPIGCHARGE
  2095.     {
  2096.         ifcansee ifpdistl 3084
  2097.         {
  2098.             ifnotmoving ai AIPIGSEEKENEMY
  2099.             else ai AIPIGDIVING
  2100.         }
  2101.         break
  2102.     }
  2103.     else iffloordistl 32
  2104.     {
  2105.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2106.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2107.     }
  2108.  
  2109.     ifrnd 128 ifcansee
  2110.     {
  2111.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2112.         iffloordistl 32
  2113.         {
  2114.             ifpdistl 1024 ifp palive ifcanshoottarget
  2115.                 { ai AIPIGSHOOTENEMY break }
  2116.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2117.         }
  2118.     }
  2119. ends
  2120.  
  2121. state pigshootenemystate
  2122. //    ifcansee
  2123.     {
  2124.         ifcount 12 { } else ifcount 11
  2125.         {
  2126.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2127.             else ai AIPIGSEEKENEMY
  2128.         }
  2129.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  2130.         ifcount 48 { } else ifcount 47
  2131.         {
  2132.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2133.             else ai AIPIGSEEKENEMY
  2134.         }
  2135.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  2136.         ifcount 72
  2137.         {
  2138.             ifrnd 64 resetcount
  2139.             else
  2140.             {
  2141.                 ifpdistl 768 ai AIPIGFLEEENEMY
  2142.                 else ai AIPIGSEEKENEMY
  2143.             }
  2144.         }
  2145.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  2146.     }
  2147.     else ai AIPIGSEEKENEMY
  2148. ends
  2149.  
  2150. state pigfleeenemystate
  2151.     ifactioncount 8 ai AIPIGSEEKENEMY
  2152.     else ifnotmoving ai AIPIGSEEKENEMY
  2153. ends
  2154.  
  2155. state pigdivestate
  2156.     ifaction APIGDIVESHOOT
  2157.     {
  2158.         ifcansee
  2159.         {
  2160.             ifcount 12 { } else ifcount 11
  2161.             {
  2162.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2163.                 else ai AIPIGSEEKENEMY
  2164.             }
  2165.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  2166.             ifcount 48 { } else ifcount 47
  2167.             {
  2168.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2169.                 else ai AIPIGSEEKENEMY
  2170.             }
  2171.             ifcount 60 { } else ifcount 59
  2172.             {
  2173.                 sound SHOTGUN_COCK
  2174.                 ifgapzl 32 ai AIPIGDIVING
  2175.                 else
  2176.                 {
  2177.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  2178.                     else ai AIPIGSEEKENEMY
  2179.                 }
  2180.             }
  2181.         }
  2182.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  2183.     }
  2184.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  2185. ends
  2186.  
  2187. state checkpighitstate
  2188.     spawn BLOOD
  2189.     state standard_jibs
  2190.     ifdead
  2191.     {
  2192.         addkills 1
  2193.         state random_wall_jibs
  2194.         ifrnd 16 spawn SHIELD else state drop_shotgun
  2195.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2196.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2197.         else ifwasweapon THROWFLAME spawn BURNING
  2198.  
  2199.         ai AIPIGDYING sound PIG_DYING
  2200.     }
  2201.     else
  2202.     {
  2203.         sound PIG_PAIN
  2204.         state random_wall_jibs
  2205.         ifwasweapon SHRINKSPARK ai AIPIGSHRINK
  2206.         else ifwasweapon THROWFLAME quote 14
  2207.         else ifrnd 64 ai AIPIGHIT
  2208.         else ifrnd 64 ai AIPIGSHOOTENEMY
  2209.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  2210.     }
  2211. ends
  2212.  
  2213. state pigshrinkstate
  2214.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AIPIGSEEKENEMY }
  2215.     else ifcount SHRUNKCOUNT sizeto 48 40
  2216.     else state genericshrunkcode
  2217. ends
  2218.  
  2219. state pigdyingstate
  2220.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  2221. ends
  2222.  
  2223.  
  2224.  
  2225. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  2226. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  2227. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  2228.     state checksquished
  2229.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  2230.     else ifaction APIGDEAD
  2231.     {
  2232.         ifrespawn ifcount RESPAWNTIME
  2233.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  2234.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  2235.     }
  2236.     else ifai AIPIGDYING state pigdyingstate
  2237.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  2238.     else ifai AIPIGSHRINK state pigshrinkstate
  2239.     else
  2240.     {
  2241.         ifai AIPIGSEEKENEMY state pigseekenemystate
  2242.         else ifai AIPIGDODGE state pigseekenemystate
  2243.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  2244.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  2245.         else ifai AIPIGDIVING state pigdivestate
  2246.         else ifai AIPIGCHARGE state pigseekenemystate
  2247.         ifhitweapon state checkpighitstate
  2248.         ifrnd 1
  2249.         {
  2250.             ifrnd 32 soundonce PIG_ROAM
  2251.             else ifrnd 64 soundonce PIG_ROAM2
  2252.             else soundonce PIG_ROAM3
  2253.         }
  2254.     }
  2255. enda
  2256.  
  2257. action ABOSSWALK                0  6  5  1  12
  2258. action ABOSSRUN                 0  6  5  1  5
  2259. action ABOSSSHOOT               30 2  5  1  4
  2260. action ABOSSLOB                 40 2  5  1  35
  2261. action ABOSS1DYING              60 5  1  1  50
  2262. action BOSS1FLINTCH             60 1  1  1  1
  2263. action ABOSS1DEAD               65
  2264.  
  2265. move BOSSWALKVELS 208
  2266. move BOSSRUNVELS 296
  2267. move BOSSSTOPPED
  2268.  
  2269. ai AIBOSSSEEKENEMY ABOSSWALK BOSSWALKVELS seekplayer
  2270. ai AIBOSSRUNENEMY ABOSSRUN BOSSRUNVELS face_player
  2271. ai AIBOSSFLEEENEMY ABOSSWALK BOSSWALKVELS fleeenemy
  2272. ai AIBOSSSHOOTENEMY ABOSSSHOOT BOSSSTOPPED face_player
  2273. ai AIBOSSLOBBED ABOSSLOB BOSSSTOPPED face_player
  2274. ai AIBOSSDYING ABOSS1DYING BOSSSTOPPED face_player
  2275.  
  2276. state bossfleeenemy
  2277.     ifcount 16 ifpdistl 1024 ifp palive ifcansee ifcanshoottarget ai AIBOSSSHOOTENEMY
  2278.     ifcount 32 ai AIBOSSSEEKENEMY
  2279. ends
  2280.  
  2281. state bossrunenemystate
  2282.     ifpdistl 2048 { ifp palive ai AIBOSSSHOOTENEMY break }
  2283.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSSSEEKENEMY } }
  2284.     else ai AIBOSSSEEKENEMY
  2285. ends
  2286.  
  2287. state bossseekenemystate
  2288.     ifrnd 2 { ifactor BOSS1 soundonce BOS1_ROAM else soundonce BOS3_ROAM }
  2289.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  2290.  
  2291.     ifpdistl 2548 ifp palive { ai AIBOSSSHOOTENEMY break }
  2292.  
  2293.     ifcansee ifcount 32
  2294.     {
  2295.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSSSHOOTENEMY }
  2296.         else ifpdistg 2548 ifrnd 192
  2297.             ifcanshoottarget
  2298.             {
  2299.                 ifrnd 64 ai AIBOSSRUNENEMY
  2300.                 else ai AIBOSSLOBBED
  2301.             }
  2302.     }
  2303.  
  2304. ends
  2305.  
  2306. state bossdyingstate
  2307.   ifaction ABOSS1DEAD break
  2308.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD endoflevel 52 }
  2309. ends
  2310.  
  2311. state bosslobbedstate
  2312.     ifcansee
  2313.     {
  2314.         ifactioncount 2
  2315.         {
  2316.             resetactioncount
  2317.             ifactor BOSS1 sound BOS1_ATTACK2
  2318.             else sound BOS3_ATTACK2
  2319.             shoot MORTER
  2320.         }
  2321.         else ifcount 64 ifrnd 16 ai AIBOSSSEEKENEMY
  2322.     }
  2323.     else ai AIBOSSSEEKENEMY
  2324.  
  2325. ends
  2326.  
  2327. state bossshootenemy
  2328.     ifcount 72 ai AIBOSSSEEKENEMY
  2329.     else ifaction ABOSSSHOOT ifactioncount 2
  2330.     {
  2331.         ifactor BOSS1 sound BOS1_ATTACK1 else sound BOS3_ATTACK1
  2332.         shoot SHOTSPARK1 shoot SHOTSPARK1 shoot SHOTSPARK1 resetactioncount
  2333.     }
  2334. ends
  2335.  
  2336. state checkbosshitstate
  2337.     ifrnd 8 spawn BLOODPOOL
  2338.     ifdead { addkills 1 ifactor BOSS1 globalsound DUKE_TALKTOBOSSFALL sound BOS1_DYING else sound BOS3_DYING ai AIBOSSDYING }
  2339.     else
  2340.     {
  2341.         ifactor BOSS1 sound BOS1_PAIN else sound BOS3_PAIN
  2342.  
  2343.         debris SCRAP1 1
  2344.         guts JIBS6 1
  2345.         ifwasweapon THROWFLAME quote 14
  2346.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  2347.     }
  2348. ends
  2349.  
  2350. state bosscode
  2351.     ifai 0 ai AIBOSSRUNENEMY
  2352.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSSSHOOTENEMY }
  2353.     else ifai AIBOSSSEEKENEMY state bossseekenemystate
  2354.     else ifai AIBOSSRUNENEMY state bossrunenemystate
  2355.     else ifai AIBOSSFLEEENEMY state bossfleeenemy
  2356.     else ifai AIBOSSSHOOTENEMY state bossshootenemy
  2357.     else ifai AIBOSSLOBBED state bosslobbedstate
  2358.  
  2359.     ifai AIBOSSDYING state bossdyingstate
  2360.  
  2361.     ifhitweapon state checkbosshitstate
  2362. ends
  2363.  
  2364. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  2365. actor BOSS1 BOSS1STRENGTH fall state bosscode enda
  2366. actor BOSS3 BOSS3STRENGTH fall state bosscode enda
  2367.  
  2368. action AFATBREETH  0  3  5  1  40
  2369. action AFATSPIN   25  3  1  1  10
  2370. action AFATGET     0  3  5  1  30
  2371. action AFATSHOOT  15  2  5  1  50
  2372. action AFATDYING  30  8  1  1  12
  2373. action AFATDEAD   38  1  1  1  1
  2374.  
  2375. move FATGETVELS 96
  2376. move FATSTOPPED
  2377.  
  2378. ai AIFATWAIT AFATBREETH FATSTOPPED face_player
  2379. ai AIFATGET AFATGET FATGETVELS face_player
  2380. ai AIFATSHOOT AFATSHOOT FATSTOPPED face_player
  2381. ai AIFATSPIN AFATSPIN FATGETVELS face_player
  2382. ai AIFATDYING AFATDYING FATSTOPPED face_player
  2383.  
  2384. actor FATGUY FATGUYSTRENGTH
  2385.  
  2386.     fall
  2387.     state checksquished
  2388.     ifai 0 ai AIFATWAIT
  2389.     else ifai AIFATWAIT { ifcount 64 { ifrnd 92 ai AIFATGET else ai AIFATSHOOT } }
  2390.     else ifai AIFATSHOOT
  2391.     {
  2392.         ifcount 32 { ifrnd 32 ai AIFATWAIT }
  2393.         else { ifactioncount 2 { sound COMM_ATTACK shoot RPG resetactioncount } }
  2394.     }
  2395.     else ifai AIFATDYING
  2396.     {
  2397.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  2398.             { sound SQUISHED state standard_jibs state delete_enemy }
  2399.         ifaction AFATDEAD break
  2400.         strength 0
  2401.         ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action AFATDEAD }
  2402.         break
  2403.     }
  2404.     else ifai AIFATGET { ifnotmoving ifrnd 32 operate ifpdistl 1596 { sound COMM_SPIN ai AIFATSPIN } }
  2405.     else ifai AIFATSPIN
  2406.     {
  2407.         soundonce COMM_SPIN
  2408.         ifcount 16 ifpdistl 1024 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  2409.         ifactioncount 32 ai AIFATWAIT
  2410.         ifnotmoving ifrnd 32 operate
  2411.  
  2412.     }
  2413.     ifhitweapon { ifdead { addkills 1 sound COMM_DYING ai AIFATDYING } else sound COMM_PAIN }
  2414.     ifrnd 1 soundonce COMM_ROAM
  2415. enda
  2416.  
  2417. move DUMMYWALK 144
  2418. move DUMMYSTOP
  2419. action ADUMMYDUKEWALK    0    4    5    1    20
  2420. action ADUMMYDUKESTAND -20    0    5    1    1
  2421. action ADUMMYDUKESHOOT -20    1    5    1    10
  2422. ai AIDUMMYFINDDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2423. ai AIDUMMYHIDEDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2424. ai AIDUMMYFLEEDUKE   ADUMMYDUKEWALK DUMMYWALK fleeplayer
  2425. ai AIDUMMYSHOOTDUKE  ADUMMYDUKESHOOT DUMMYSTOP face_player
  2426.  
  2427. state dummyshootstate
  2428.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2429.     ifcount 48 { ifcansee { ifrnd 128 { cstat 32768 spawn TRANSPORTERSTAR ai AIDUMMYHIDEDUKE } else ai AIDUMMYFINDDUKE } else ai 0 }
  2430. ends
  2431.  
  2432. state dummyfindstate
  2433.     ifcansee ifpdistl 768 ai AIDUMMYSHOOTDUKE
  2434.     ifrnd 32 ifcount 64 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2435. ends
  2436.  
  2437. state dummyfleestate
  2438.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2439.     ifcount 32 ifcanseetarget ai AIDUMMYSHOOTDUKE else ai AIDUMMYFINDDUKE
  2440. ends
  2441.  
  2442. state dummyhidestate
  2443.     ifcount 4 ifpdistl 1228 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2444.     ifcount 32 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2445. ends
  2446.  
  2447. actor DUMMYDUKE BOSS2SMALLDUKESTRENGTH fall
  2448.     spritepal 7
  2449.     ifaction ADUMMYDUKESTAND
  2450.     {
  2451.         ifcount 64 ifcansee ai AIDUMMYFINDDUKE
  2452.         ifrnd 2 ifpdistl 2048 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2453.     }
  2454.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ADUMMYDUKESTAND move DUMMYSTOP looking }
  2455.     else ifai AIDUMMYFINDDUKE state dummyfindstate
  2456.     else ifai AIDUMMYHIDEDUKE state dummyhidestate
  2457.     else ifai AIDUMMYFLEEDUKE state dummyfleestate
  2458.     else ifai AIDUMMYSHOOTDUKE state dummyshootstate
  2459.     ifhitweapon { ifdead { addkills 1 sound SQUISHED state standard_jibs state delete_enemy break } else cstat 257 }
  2460. enda
  2461.  
  2462. move BIGWALK 64
  2463. move BIGSTOP
  2464. action ABIGDUKEWALK   -5    4    5    1    40
  2465. action ABIGDUKESTAND -25    0    5
  2466. action ABIGDUKESHOOT -25    1    5
  2467. ai AIBIGFINDDUKE   ABIGDUKEWALK BIGWALK seekplayer
  2468. ai AIBIGFLEEDUKE   ABIGDUKEWALK BIGWALK fleeplayer
  2469. ai AIBIGSHOOTDUKE  ABIGDUKESHOOT BIGSTOP face_player
  2470.  
  2471. state bigshootstate
  2472.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2473.     ifcount 48 { ifcansee ai AIBIGFINDDUKE else ai 0 }
  2474. ends
  2475.  
  2476. state bigfindstate
  2477.     ifcansee ifpdistl 768 ai AIBIGSHOOTDUKE
  2478.     ifrnd 32 ifcount 64 ifcanseetarget ai AIBIGSHOOTDUKE
  2479. ends
  2480.  
  2481. state bigfleestate
  2482.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIBIGSHOOTDUKE
  2483.     ifcount 32 ifcanseetarget ai AIBIGSHOOTDUKE else ai AIBIGFINDDUKE
  2484. ends
  2485.  
  2486. actor BIGDUMMYDUKE BOSS2LARGEDUKESTRENGTH fall
  2487.     sizeto 96 96
  2488.     spritepal 7
  2489.     ifaction ABIGDUKESTAND
  2490.     {
  2491.         ifcount 64 ifcansee ai AIBIGFINDDUKE
  2492.         ifrnd 2 ifpdistl 2048 ifcanshoottarget ai AIBIGSHOOTDUKE
  2493.     }
  2494.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ABIGDUKESTAND move BIGSTOP looking }
  2495.     else ifai AIBIGFINDDUKE state bigfindstate
  2496.     else ifai AIBIGFLEEDUKE state bigfleestate
  2497.     else ifai AIBIGSHOOTDUKE state bigshootstate
  2498.     ifhitweapon { sound SQUISHED state standard_jibs state delete_enemy break }
  2499. enda
  2500.